package com.zee.wechat.module.wechatinfo.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zee.wechat.framework.enums.ResultCode;
import com.zee.wechat.framework.utils.BeanConvertUtils;
import com.zee.wechat.framework.vo.PageVo;
import com.zee.wechat.framework.vo.ResponseResult;
import com.zee.wechat.module.wechatinfo.dto.WechatInfoDto;
import com.zee.wechat.module.wechatinfo.entity.WechatInfo;
import com.zee.wechat.module.wechatinfo.service.WechatInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
@RequestMapping("/wechat")
public class WechatInfoController {
    @Autowired
    private WechatInfoService wechatInfoService;
    private static final Logger logger = LoggerFactory
            .getLogger(WechatInfoController.class);

    /**
     * 分页查询微信公众号
     *
     * @return
     * @author Zee
     * @date 2016年11月22日
     */
    @RequestMapping("/wechat-info-list")
    @ResponseBody
    public IPage queryWechatInfos(PageVo pageVo) {
        IPage page = new Page(pageVo.getPageNum(), 10);
        wechatInfoService.page(page);
        return page;
    }

    /**
     * 微信公众号信息添加
     *
     * @param wechatInfoDto
     * @author Zee
     * @date 2016年11月22日
     */
    @RequestMapping("/wechat-save")
    @ResponseBody
    public ResponseResult saveWechatInfo(WechatInfoDto wechatInfoDto) {
        wechatInfoService.save(BeanConvertUtils.convertTo(wechatInfoDto, WechatInfo::new));
        return new ResponseResult(ResultCode.SUCCESS);
    }

    /**
     * 删除微信公众号信息
     *
     * @param wechatId
     * @return
     * @author Zee
     * @date 2016年11月22日
     */
    @RequestMapping("/wechat-delete")
    @ResponseBody
    public ResponseResult deleteWechatInfo(String wechatId) {
        wechatInfoService.removeById(wechatId);
        return new ResponseResult(ResultCode.SUCCESS);
    }
}
